{wcademy}

Как использовать httpie?

April 26, 2020

HTTPie (эйч-ти-ти-пай) — современная, удобная и кросс-платформенная альтернатива cURL. Он спроектирован для максимально комфортного взаимодействия с веб-сервисами.

HTTPie — HTTP-клиент для терминала

Из терминала он вызывается как http и позволяет делать HTTP-запросы с помощью достаточно естественного синтаксиса без запоминания кучи флагов. Его, в основном, используют для отладки — неважно, http серверов, веб-сервисов или rest api.

  • HTTPie имеет интуитивный интерфейс
  • отлично поддерживает json
  • форматирует и подсвечивает вывод терминала
  • поддерживает https, прокси, аутентификацию
  • поддерживает формы и загрузку файлов
  • можно посылать любые запросы и заголовки
  • умеет загружать файлы, как wget

Установка

Debian-like

apt-get install httpie

Mac

brew install httpie

Windows

pip install --upgrade httpie

Как использовать?

http [опции/флаги] [http-метод] URL [параметры]

Самый простой пример использования:

http https://wcademy.ru

Cамый простой пример использования

Указание http метода

http get https://wcademy.ru

Скачивание файла

http http://placekitten.com/200/300 > 300.jpg

или

http --download http://placekitten.com/200/300

В этом примере мы использовали сервис placekitten. Он возвращает фотку рандомного котэ с указанным размером.

Загрузка файла

Для примера, загрузим файл на filebin:

http https://filebin.net/ < 300.jpg

Отправка формы

Дальше мы будем использовать сервис httpbin.org. Он позволяет отправлять на себя любые http запросы, и возвращает осмысленные ответы. На его главной странице есть его swagger-спецификация.

http --form POST https://httpbin.org/post name=wcademy

Просмотр деталей запроса

Для того, чтобы проверить, что конкретно отправляется можно добавить флаг -v:

http -v --form POST https://httpbin.org/post name=wcademy

Вывод запроса

Базовая аутентификация

http -a admin:pass https://httpbin.org/basic-auth/admin/pass

Где admin — имя пользователя, а pass — пароль. Мы их дважды пишем в запросе. После флага -a — те, которые отсылаются, а в /admin/pass те, относительно которых httpbin будет проверять наш логин-пароль. Можете попробовать отправить другой пароль и закономерно получите 401 UNAUTHORIZED.

Кастомные HTTP заголовки

Также можно отправить произвольный заголовок в формате «Заголовок:Значение».

Отправка заголовков

Заключение

Ну как? Удобно же? Возможно, кто-то предпочтёт что-то более гуевое, но httpie — лучшее что есть в консоли, и точно гораздо удобнее, чем старый добрый curl. Продолжить знакомство с httpie можно с его справки:

http --help

Ну и, конечно, на официальном сайте или их гитхабе.

🚀  Если узнал из статьи что-то полезное, ставь лайк и подписывайся на наш канал в Телеграм или группу ВК. Обсудить статью можно в нашем уютном чатике 😏

© 2019 - 2022, {wcademy}